OS HW1

1.请分别从系统和用户的角度,阐述操作系统的功能,并具体描 述操作系统需要提供哪些服务

从系统的角度,操作系统是一个资源管理器,它负责对计算机中的各种资源进行有效地分配、调度和控制。操作系统需要提供以下服务:

从用户的角度,操作系统是一个服务提供者,它为用户提供了方便易用且高效可靠地使用计算机资源。操作系统为用户提供了方便易用且高效可靠地使用计算机资源的服务,主要有以下几类:

2.请阐述multi-programming 和 multi-tasking 的概念与设计目的

多道程序设计(Multi-Programming)是指在计算机系统中,允许多个程序同时驻留在内存中,并由一个物理程序计数器分时执行。多道程序设计的目的是提高CPU的利用率,减少空闲时间。

多任务(Multi-Tasking)是指在计算机系统中,允许多个进程或线程并发执行,并由多个逻辑程序计数器控制。多任务的目的是提高系统的吞吐量,响应时间和用户体验。

3.请阐述缓存的思想以及工作原理

缓存是一种可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。缓存的工作原理是利用程序访问的局部性原则,即CPU在某一时刻需要某个数据,那么很可能下一步就需要其附近的数据;当某个数据被访问过一次之后,过不了多久时间就会被再一次访问。为了提高CPU和主存之间的数据传输效率,缓存会把主存中被频繁访问的程序块和数据块复制到自己的空间中,这样当CPU需要这些数据时,就可以直接从缓存中读取,而不用等待主存的响应。

4.请阐述什么是系统调用,以及系统调用与API的逻辑关系

系统调用是用户程序向操作系统内核请求服务的一种特殊的接口。系统调用是偏底层、偏实现的,通常由汇编语言或者C语言实现。

系统调用与API的逻辑关系是:API是偏上层、偏接口的,通常由高级语言实现,API可以调用系统调用,也可以调用其他库函数或者自定义函数。API的作用是为了提供更方便、更统一、更跨平台的编程接口,隐藏底层的细节和差异。

5.阐述Dual Mode的工作机制,以及采用 Dual Mode 的原因。

Dual Mode是指操作系统将CPU的运行模式分为两种:内核态(Kernel Mode)用户态(User Mode)

在内核态下,CPU可以执行任何指令,包括访问硬件设备、改变特权级别等;在用户态下,CPU只能执行一些受限的指令,不能直接访问硬件设备,如果需要使用内核提供的服务,必须通过系统调用切换到内核态。

采用Dual Mode的原因是为了保护操作系统和硬件设备不被恶意或错误的用户程序破坏,同时也为了实现多任务和多用户的功能。Dual Mode可以通过特殊的寄存器来记录当前CPU的运行模式,并在需要时进行切换。

6.分别阐述Monolithic大内核结构,层次化结构,模块化结构和微内核结构的特点和优劣

7.举例说明什么是机制与策略分离的设计原则,并说明该设计的 好处。

机制与策略分离的设计原则是指在系统设计中,将实现某种功能的具体方法(策略)提供该功能的基本模型(机制)分开,从而提高系统的灵活性和可扩展性。该设计原则的好处有以下几点:

一个典型的例子是Linux内核,它遵循了机制与策略分离的原则,在内核中提供了一些基本功能(如进程管理、内存管理、文件系统等)作为机制,在用户空间中提供了各种应用程序(如shell、编辑器、编译器等)作为策略。这样做使得Linux内核具有很高的灵活性和可移植性,并且能够支持多种不同类型和需求的用户。